/************************************************************************************************
 *commons.js
 封装常用的js函数
************************************************************************************************/
//手机号码合法性验证
function validPhone(phone){
    return /^1[34578]\d{9}$/.test(phone);
}



////////////////////////////////////////////////////////////////////////////////////////////////////
// form操作 
////////////////////////////////////////////////////////////////////////////////////////////////////

//填充div中的input元素
function fillForm(formId,entity){
    var inputs = $('#' + formId).find('input');
    var input,name;
    for (var i = 0 ; i < inputs.length ; i++) {
        input = $(inputs[i]);
        name = input.attr('name');
        input.val(entity[name]);
    }
}

//清空div中的input元素值
function clearForm(id) {
    var inputs = $('#' + id).find('input');
    for (var i = 0 ; i < inputs.length ; i++) {
        $(inputs[i]).val('');
    }
}

//将form中的值pick到一个object中
function pickForm(id) {
    var r = {};
    var inputs = $('#' + id).find('input');
    var name;
    var input;
    for (var i = 0 ; i < inputs.length ; i++) {
        input = $(inputs[i]);
        name = input.attr('name');
        r[name] = input.val();
    }
    return r;
}

//format .net json datetime
//.net mvc 序列化的日期格式类似于/Date(xxxxxxx)/
//使用本方法将此数据parse为Date对象
function parseNetJsonDateTime(val) {
    if (val == null)
        return null;
    return new Date(parseInt(val.replace("/Date(", "").replace(")/", ""), 10));
}


////////////////////////////////////////////////////////////////////////////////////////////////////
// 常用函数
///////////////////////////////////////////////////////////////////////////////////////////////////

/**
 * 将指定的值填充到模板中
 * @param template
 * @param o
 * @returns {*}
 */
function fillTemplate(template,o) {
    for (let key in o) {
        template = template.replaceAll('{'+key+'}',o[key]);
    }
    return template;
}
